.TH std::shared_lock::try_lock_for 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::shared_lock::try_lock_for \- std::shared_lock::try_lock_for

.SH Synopsis
   template< class Rep, class Period >
   bool try_lock_for( const std::chrono::duration<Rep,Period>&            \fI(since C++14)\fP
   timeout_duration );

   Tries to lock the associated mutex in shared mode. Blocks until specified
   timeout_duration has elapsed or the lock is acquired, whichever comes first. On
   successful lock acquisition returns true, otherwise returns false. Effectively calls
   mutex()->try_lock_shared_for(timeout_duration).

   This function may block for longer than timeout_duration due to scheduling or
   resource contention delays.

   The standard recommends that a steady clock is used to measure the duration. If an
   implementation uses a system clock instead, the wait time may also be sensitive to
   clock adjustments.

   std::system_error is thrown if there is no associated mutex or if the mutex is
   already locked.

   The behavior is undefined if Mutex does not meet the SharedTimedLockable
   requirements.

.SH Parameters

   timeout_duration - maximum duration to block for

.SH Return value

   true if the ownership of the mutex has been acquired successfully, false otherwise.

.SH Exceptions

     * Any exceptions thrown by mutex()->try_lock_shared_for(timeout_duration).
     * If there is no associated mutex, std::system_error with an error code of
       std::errc::operation_not_permitted.
     * If the mutex is already locked, std::system_error with an error code of
       std::errc::resource_deadlock_would_occur.

.SH Example

    This section is incomplete
    Reason: no example

.SH See also

                  attempts to lock (i.e., takes ownership of) the associated
   try_lock_for   TimedLockable mutex, returns if the mutex has been unavailable for
                  the specified time duration
                  \fI(public member function of std::unique_lock<Mutex>)\fP
   lock           locks the associated mutex
                  \fI(public member function)\fP
   try_lock       tries to lock the associated mutex
                  \fI(public member function)\fP
   try_lock_until tries to lock the associated mutex, until a specified time point
                  \fI(public member function)\fP
   unlock         unlocks the associated mutex
                  \fI(public member function)\fP

.SH Category:
     * Todo no example
